{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Load data ion database\n",
    "## Get neuron list from sample\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "import sys\n",
    "sys.path.append(r\"G:/workspace/neuron-vis/neuronVis\")\n",
    "\n",
    "import IONData as IONData \n",
    "import SwcLoader\n",
    "iondata =IONData.IONData()\n",
    "neuronlist=iondata.getNeuronListBySampleID('192106')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Get neuron list by soma region"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[{'name': '005.swc', 'sampleid': '202172'}, {'name': '006.swc', 'sampleid': '202172'}, {'name': '007.swc', 'sampleid': '202172'}, {'name': '008.swc', 'sampleid': '202172'}, {'name': '029.swc', 'sampleid': '202172'}, {'name': '031.swc', 'sampleid': '202172'}, {'name': '052.swc', 'sampleid': '210257'}, {'name': '001.swc', 'sampleid': '210958'}, {'name': '003.swc', 'sampleid': '210958'}, {'name': '004.swc', 'sampleid': '210958'}, {'name': '063.swc', 'sampleid': '210258'}, {'name': '001.swc', 'sampleid': '210957'}, {'name': '004.swc', 'sampleid': '210957'}, {'name': '005.swc', 'sampleid': '210957'}, {'name': '008.swc', 'sampleid': '210957'}, {'name': '010.swc', 'sampleid': '210957'}, {'name': '001.swc', 'sampleid': '210959'}, {'name': '002.swc', 'sampleid': '210959'}, {'name': '003.swc', 'sampleid': '210959'}, {'name': '004.swc', 'sampleid': '210959'}, {'name': '005.swc', 'sampleid': '210959'}, {'name': '005.swc', 'sampleid': '211182'}, {'name': '006.swc', 'sampleid': '211182'}, {'name': '013.swc', 'sampleid': '211182'}, {'name': '034.swc', 'sampleid': '211182'}, {'name': '036.swc', 'sampleid': '211182'}, {'name': '038.swc', 'sampleid': '211182'}, {'name': '039.swc', 'sampleid': '211182'}, {'name': '040.swc', 'sampleid': '211182'}, {'name': '043.swc', 'sampleid': '211182'}, {'name': '044.swc', 'sampleid': '211182'}, {'name': '001.swc', 'sampleid': '211179'}, {'name': '007.swc', 'sampleid': '211179'}, {'name': '008.swc', 'sampleid': '211179'}, {'name': '009.swc', 'sampleid': '211179'}, {'name': '001.swc', 'sampleid': '211180'}, {'name': '002.swc', 'sampleid': '211180'}, {'name': '003.swc', 'sampleid': '211180'}, {'name': '010.swc', 'sampleid': '211180'}, {'name': '012.swc', 'sampleid': '211180'}, {'name': '013.swc', 'sampleid': '211180'}, {'name': '014.swc', 'sampleid': '211180'}, {'name': '015.swc', 'sampleid': '211180'}, {'name': '016.swc', 'sampleid': '211180'}, {'name': '017.swc', 'sampleid': '211180'}, {'name': '025.swc', 'sampleid': '211180'}, {'name': '027.swc', 'sampleid': '211180'}, {'name': '001.swc', 'sampleid': '211183'}, {'name': '011.swc', 'sampleid': '211183'}, {'name': '020.swc', 'sampleid': '211183'}, {'name': '022.swc', 'sampleid': '211183'}, {'name': '004.swc', 'sampleid': '211181'}, {'name': '005.swc', 'sampleid': '211181'}, {'name': '007.swc', 'sampleid': '211181'}, {'name': '008.swc', 'sampleid': '211181'}, {'name': '009.swc', 'sampleid': '211181'}, {'name': '011.swc', 'sampleid': '211181'}, {'name': '012.swc', 'sampleid': '211181'}, {'name': '013.swc', 'sampleid': '211181'}, {'name': '014.swc', 'sampleid': '211181'}, {'name': '024.swc', 'sampleid': '211181'}, {'name': '025.swc', 'sampleid': '211181'}, {'name': '077.swc', 'sampleid': '211181'}, {'name': '116.swc', 'sampleid': '211181'}, {'name': '117.swc', 'sampleid': '211181'}, {'name': 'AA0433.swc', 'sampleid': 'sample'}]\n"
     ]
    }
   ],
   "source": [
    "CA1Neuronlist=iondata.getNeuronListBySomaRegion('PAG')\n",
    "print(CA1Neuronlist)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Get neuron  list by terminal or project region"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "collapsed": true,
    "scrolled": false
   },
   "outputs": [],
   "source": [
    "terminalPAGNeuronlist=iondata.getNeuronListByTerminalRegion('PAG')\n",
    "projectPAGNeuronlist=iondata.getNeuronListByProjectRegion('SO')\n",
    "# print(pagNeuronlist)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Get neuron by sample and neuron ID"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "write  G:/workspace/neuron-vis/neuronVis/../resource/swc/192106/001.swc\n"
     ]
    }
   ],
   "source": [
    "swc = iondata.getNeuronByID('192106', '001.swc')\n",
    "neuron = SwcLoader.NeuronTree()\n",
    "neuron.readSWC(swc)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Get neuron properties form iondata  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "exist  /Users/wxf/project/neuron-vis/neuronVis/../resource/json/192106/001.swc.json\n"
     ]
    }
   ],
   "source": [
    "pro = iondata.getNeuronPropertyByID('192106', '001.swc')\n",
    "\n",
    "# print(pro)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Render region and neuron\n",
    "## Render with interactive type"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "2d9f32462871469496ab3bca1ab07cc2",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "RFBOutputContext()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "exist  G:/workspace/neuron-vis/neuronVis/../resource/swc/192106/011.swc\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div class='initial-snapshot-f959037b884e446c95530c7b2c5eb241' style='position:relative;'><img src='' style='width:800.0px;height:600.0px;' /><div style='position: absolute; top:0; left:0; padding:1px 3px; background: #777; color:#fff; font-size: 90%; font-family:sans-serif; '>initial snapshot</div></div>"
      ],
      "text/plain": [
       "<jupyter_rfb._utils.Snapshot object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "f959037b884e446c95530c7b2c5eb241",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "CanvasBackend(css_height='600px', css_width='800px')"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import Visual as nv\n",
    "\n",
    "neuronvis = nv.neuronVis()\n",
    "# neuronvis.render.setBackgroundColor((0.0,0.20,0.5,1.0))\n",
    "neuronvis.addRegion('CA2',[0.5,1.0,0.5])\n",
    "neuronvis.addNeuron('./resource/033.swc')\n",
    "\n",
    "neuronvis.render.setView('posterior')\n",
    "neuronvis.render.setLookAt((-10000,-10000,-10000),(0,0,0),(0,1,0))\n",
    "neuronvis.addNeuron('./resource/192092-012.swc',[1.0,1.0,0.0])\n",
    "neuronvis.addNeuronByID('192106','011.swc',[1.0,1.0,0.0])\n",
    "\n",
    "\n",
    "neuronvis.render\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Offscreen on png by pyqt"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "ename": "RuntimeError",
     "evalue": "OpenGL got errors (Check before draw): GL_INVALID_FRAMEBUFFER_OPERATION",
     "output_type": "error",
     "traceback": [
      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[0;31mRuntimeError\u001b[0m                              Traceback (most recent call last)",
      "\u001b[0;32m/var/folders/cg/_3j4qlns723_1t5xmb4xk_pc0000gn/T/ipykernel_27412/570712425.py\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[1;32m      1\u001b[0m \u001b[0;31m# this will be black ad savepng need run on the backend of pyqt\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m \u001b[0mneuronvis\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrender\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msavepng\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'./resource/test3.png'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
      "\u001b[0;32m~/project/neuron-vis/neuronVis/Render.py\u001b[0m in \u001b[0;36msavepng\u001b[0;34m(self, filename)\u001b[0m\n\u001b[1;32m    212\u001b[0m                 \u001b[0;32mfor\u001b[0m \u001b[0mname\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mvalue\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mgeometries\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mitems\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    213\u001b[0m                         \u001b[0mvalue\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'view'\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mview\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 214\u001b[0;31m                         \u001b[0mvalue\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdraw\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mname\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdrawModel\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mvalue\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;31m# draw the colorbar\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    215\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    216\u001b[0m                 \u001b[0mnp_array\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mgloo\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mwrappers\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mread_pixels\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/anaconda3/envs/neuronVis/lib/python3.7/site-packages/vispy/gloo/program.py\u001b[0m in \u001b[0;36mdraw\u001b[0;34m(self, mode, indices, check_error)\u001b[0m\n\u001b[1;32m    524\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    525\u001b[0m         \u001b[0;31m# Process GLIR commands\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 526\u001b[0;31m         \u001b[0mcanvas\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcontext\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mflush_commands\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
      "\u001b[0;32m~/anaconda3/envs/neuronVis/lib/python3.7/site-packages/vispy/gloo/context.py\u001b[0m in \u001b[0;36mflush_commands\u001b[0;34m(self, event)\u001b[0m\n\u001b[1;32m    170\u001b[0m                 \u001b[0mfbo\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;36m0\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    171\u001b[0m             \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mshared\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mparser\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mparse\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'CURRENT'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m0\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mfbo\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 172\u001b[0;31m         \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mglir\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mflush\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mshared\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mparser\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    173\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    174\u001b[0m     \u001b[0;32mdef\u001b[0m \u001b[0mset_viewport\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/anaconda3/envs/neuronVis/lib/python3.7/site-packages/vispy/gloo/glir.py\u001b[0m in \u001b[0;36mflush\u001b[0;34m(self, parser)\u001b[0m\n\u001b[1;32m    577\u001b[0m     \u001b[0;32mdef\u001b[0m \u001b[0mflush\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mparser\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    578\u001b[0m         \u001b[0;34m\"\"\"Flush all current commands to the GLIR interpreter.\"\"\"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 579\u001b[0;31m         \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_shared\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mflush\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mparser\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    580\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    581\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/anaconda3/envs/neuronVis/lib/python3.7/site-packages/vispy/gloo/glir.py\u001b[0m in \u001b[0;36mflush\u001b[0;34m(self, parser)\u001b[0m\n\u001b[1;32m    499\u001b[0m             \u001b[0mshow\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_verbose\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0misinstance\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_verbose\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mstr\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32melse\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    500\u001b[0m             \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mshow\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mshow\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 501\u001b[0;31m         \u001b[0mparser\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mparse\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_filter\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mclear\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mparser\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    502\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    503\u001b[0m     \u001b[0;32mdef\u001b[0m \u001b[0m_filter\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcommands\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mparser\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/anaconda3/envs/neuronVis/lib/python3.7/site-packages/vispy/gloo/glir.py\u001b[0m in \u001b[0;36mparse\u001b[0;34m(self, commands)\u001b[0m\n\u001b[1;32m    817\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    818\u001b[0m         \u001b[0;32mfor\u001b[0m \u001b[0mcommand\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mcommands\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 819\u001b[0;31m             \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_parse\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcommand\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    820\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    821\u001b[0m     \u001b[0;32mdef\u001b[0m \u001b[0mget_object\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mid_\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/anaconda3/envs/neuronVis/lib/python3.7/site-packages/vispy/gloo/glir.py\u001b[0m in \u001b[0;36m_parse\u001b[0;34m(self, command)\u001b[0m\n\u001b[1;32m    779\u001b[0m             \u001b[0;31m# common ones occur first.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    780\u001b[0m             \u001b[0;32mif\u001b[0m \u001b[0mcmd\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;34m'DRAW'\u001b[0m\u001b[0;34m:\u001b[0m  \u001b[0;31m# Program\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 781\u001b[0;31m                 \u001b[0mob\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdraw\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    782\u001b[0m             \u001b[0;32melif\u001b[0m \u001b[0mcmd\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;34m'TEXTURE'\u001b[0m\u001b[0;34m:\u001b[0m  \u001b[0;31m# Program\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    783\u001b[0m                 \u001b[0mob\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mset_texture\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/anaconda3/envs/neuronVis/lib/python3.7/site-packages/vispy/gloo/glir.py\u001b[0m in \u001b[0;36mdraw\u001b[0;34m(self, mode, selection)\u001b[0m\n\u001b[1;32m   1316\u001b[0m             \u001b[0;32mraise\u001b[0m \u001b[0mRuntimeError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'Cannot draw program if code has not been set'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1317\u001b[0m         \u001b[0;31m# Init\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1318\u001b[0;31m         \u001b[0mgl\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcheck_error\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'Check before draw'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m   1319\u001b[0m         \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   1320\u001b[0m             \u001b[0mmode\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mas_enum\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mmode\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m~/anaconda3/envs/neuronVis/lib/python3.7/site-packages/vispy/gloo/gl/__init__.py\u001b[0m in \u001b[0;36mcheck_error\u001b[0;34m(when)\u001b[0m\n\u001b[1;32m    202\u001b[0m         \u001b[0merr\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0merrors\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0merrors\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    203\u001b[0m         \u001b[0merr\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0merr\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0merrors\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m-\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m]\u001b[0m  \u001b[0;31m# pyopengl compat\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 204\u001b[0;31m         \u001b[0;32mraise\u001b[0m \u001b[0merr\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    205\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    206\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;31mRuntimeError\u001b[0m: OpenGL got errors (Check before draw): GL_INVALID_FRAMEBUFFER_OPERATION"
     ]
    }
   ],
   "source": [
    "# this will be black ad savepng need run on the backend of pyqt\n",
    "neuronvis.render.savepng('./resource/test3.png')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Clear scene"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div class='initial-snapshot-25888202bf2f42fd8c26963b97ecc69c' style='position:relative;'><img src='' style='width:800px;height:600px;' /><div style='position: absolute; top:0; left:0; padding:1px 3px; background: #777; color:#fff; font-size: 90%; font-family:sans-serif; '>initial snapshot</div></div>"
      ],
      "text/plain": [
       "<jupyter_rfb._utils.Snapshot object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "25888202bf2f42fd8c26963b97ecc69c",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "CanvasBackend(css_height='600px', css_width='800px', frame_feedback={'index': 18, 'timestamp': 1652346937.2160…"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "neuronvis.addRegion('MO')\n",
    "neuronvis.clear(True,True,False)\n",
    "neuronvis.render\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Cluster"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "ename": "TypeError",
     "evalue": "'module' object is not callable",
     "output_type": "error",
     "traceback": [
      "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[1;31mTypeError\u001b[0m                                 Traceback (most recent call last)",
      "\u001b[1;32m~\\AppData\\Local\\Temp\\ipykernel_15368\\2776832107.py\u001b[0m in \u001b[0;36m<module>\u001b[1;34m\u001b[0m\n\u001b[0;32m      3\u001b[0m \u001b[0miondata\u001b[0m \u001b[1;33m=\u001b[0m\u001b[0mIONData\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mIONData\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m      4\u001b[0m \u001b[0mneuronlist\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0miondata\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mgetNeuronListBySampleID\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'210013'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 5\u001b[1;33m \u001b[0mcluster\u001b[0m\u001b[1;33m=\u001b[0m \u001b[0mCluster\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m      6\u001b[0m \u001b[0mcluster\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mfcluster\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mneuronlist\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;31mTypeError\u001b[0m: 'module' object is not callable"
     ]
    }
   ],
   "source": [
    "import Cluster\n",
    "import IONData\n",
    "iondata =IONData.IONData()\n",
    "neuronlist=iondata.getNeuronListBySampleID('210013')\n",
    "cluster= Cluster()\n",
    "cluster.fcluster(neuronlist)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "scrolled": false
   },
   "source": [
    "# Get neuron list of 《Reconstruction of 1,000 projection neurons reveals new cell types and organization of long-range connectivity in the mouse brain》"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "08b2974b2fc14c6f99d05cec9bca4e9e",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "RFBOutputContext()"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "{'name': 'AA0001.swc', 'sampleid': 'sample', 'region': 'SSp-m5'}\n",
      "write  G:/workspace/neuron-vis/neuronVis/../resource/swc/sample/AA0001.swc\n",
      "exist  G:/workspace/neuron-vis/neuronVis/../resource/swc/sample/AA0002.swc\n",
      "exist  G:/workspace/neuron-vis/neuronVis/../resource/swc/sample/AA0003.swc\n",
      "exist  G:/workspace/neuron-vis/neuronVis/../resource/swc/sample/AA0004.swc\n",
      "exist  G:/workspace/neuron-vis/neuronVis/../resource/swc/sample/AA0005.swc\n",
      "exist  G:/workspace/neuron-vis/neuronVis/../resource/swc/sample/AA0006.swc\n",
      "exist  G:/workspace/neuron-vis/neuronVis/../resource/swc/sample/AA0007.swc\n",
      "exist  G:/workspace/neuron-vis/neuronVis/../resource/swc/sample/AA0008.swc\n",
      "exist  G:/workspace/neuron-vis/neuronVis/../resource/swc/sample/AA0009.swc\n",
      "exist  G:/workspace/neuron-vis/neuronVis/../resource/swc/sample/AA0010.swc\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div class='initial-snapshot-c457f06ae9374f5699832608e87688d3' style='position:relative;'><img src='' style='width:800.0px;height:600.0px;' /><div style='position: absolute; top:0; left:0; padding:1px 3px; background: #777; color:#fff; font-size: 90%; font-family:sans-serif; '>initial snapshot</div></div>"
      ],
      "text/plain": [
       "<jupyter_rfb._utils.Snapshot object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "c457f06ae9374f5699832608e87688d3",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "CanvasBackend(css_height='600px', css_width='800px')"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import sys\n",
    "sys.path.append(r\"D:/project/python/neuronVis/neuronVis\")\n",
    "import random\n",
    "import IONData \n",
    "import Visual as nv\n",
    "\n",
    "iondata =IONData.IONData()\n",
    "neuronlist=iondata.getNeuronListBySampleID('sample')\n",
    "# print(neuronlist)\n",
    "\n",
    "neuronvis = nv.neuronVis()\n",
    "# neuronvis.render.setBackgroundColor((0.0,0.20,0.5,1.0))\n",
    "print(neuronlist[0])\n",
    "neuronvis.addRegion(neuronlist[0]['region'],[0.5,1.0,0.5])\n",
    "\n",
    "neuronvis.render.setView('posterior')\n",
    "for i in range(0,10):\n",
    "    color=[random.random(),random.random(),random.random()]\n",
    "    neuronvis.addNeuronByID(neuronlist[i]['sampleid'],neuronlist[i]['name'],color)\n",
    "\n",
    "neuronvis.render.setLookAt((-10000,-10000,-10000),(0,0,0),(0,1,0))\n",
    "\n",
    "\n",
    "neuronvis.render"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[{'sampleid': 'sample', 'name': 'AA0916.swc', 'region': 'MOs2/3'}, {'sampleid': 'sample', 'name': 'AA0915.swc', 'region': 'MOs2/3'}, {'sampleid': 'sample', 'name': 'AA0914.swc', 'region': 'MOs2/3'}, {'sampleid': 'sample', 'name': 'AA0897.swc', 'region': 'MOs2/3'}, {'sampleid': 'sample', 'name': 'AA0884.swc', 'region': 'MOs2/3'}, {'sampleid': 'sample', 'name': 'AA0873.swc', 'region': 'MOs2/3'}, {'sampleid': 'sample', 'name': 'AA0866.swc', 'region': 'MOs2/3'}, {'sampleid': 'sample', 'name': 'AA0865.swc', 'region': 'MOs2/3'}, {'sampleid': 'sample', 'name': 'AA0859.swc', 'region': 'MOs2/3'}, {'sampleid': 'sample', 'name': 'AA0803.swc', 'region': 'MOs2/3'}, {'sampleid': 'sample', 'name': 'AA0802.swc', 'region': 'MOs2/3'}, {'sampleid': 'sample', 'name': 'AA0793.swc', 'region': 'MOs2/3'}, {'sampleid': 'sample', 'name': 'AA0782.swc', 'region': 'MOs2/3'}, {'sampleid': 'sample', 'name': 'AA0738.swc', 'region': 'MOs2/3'}, {'sampleid': 'sample', 'name': 'AA0672.swc', 'region': 'MOs2/3'}, {'sampleid': 'sample', 'name': 'AA0670.swc', 'region': 'MOs2/3'}, {'sampleid': 'sample', 'name': 'AA0666.swc', 'region': 'MOs2/3'}, {'sampleid': 'sample', 'name': 'AA0659.swc', 'region': 'MOs2/3'}, {'sampleid': 'sample', 'name': 'AA0658.swc', 'region': 'MOp2/3'}, {'sampleid': 'sample', 'name': 'AA0639.swc', 'region': 'MOs2/3'}, {'sampleid': 'sample', 'name': 'AA0622.swc', 'region': 'MOp2/3'}, {'sampleid': 'sample', 'name': 'AA0597.swc', 'region': 'MOp2/3'}, {'sampleid': 'sample', 'name': 'AA0592.swc', 'region': 'MOp2/3'}, {'sampleid': 'sample', 'name': 'AA0582.swc', 'region': 'MOs2/3'}, {'sampleid': 'sample', 'name': 'AA0475.swc', 'region': 'MOs2/3'}, {'sampleid': 'sample', 'name': 'AA0474.swc', 'region': 'MOs2/3'}, {'sampleid': 'sample', 'name': 'AA0471.swc', 'region': 'MOs2/3'}, {'sampleid': 'sample', 'name': 'AA0467.swc', 'region': 'MOs2/3'}, {'sampleid': 'sample', 'name': 'AA0450.swc', 'region': 'MOs2/3'}, {'sampleid': 'sample', 'name': 'AA0446.swc', 'region': 'MOs2/3'}, {'sampleid': 'sample', 'name': 'AA0439.swc', 'region': 'MOs2/3'}, {'sampleid': 'sample', 'name': 'AA0426.swc', 'region': 'MOs2/3'}, {'sampleid': 'sample', 'name': 'AA0424.swc', 'region': 'MOs2/3'}, {'sampleid': 'sample', 'name': 'AA0419.swc', 'region': 'MOs2/3'}, {'sampleid': 'sample', 'name': 'AA0418.swc', 'region': 'MOs2/3'}, {'sampleid': 'sample', 'name': 'AA0416.swc', 'region': 'MOs2/3'}, {'sampleid': 'sample', 'name': 'AA0409.swc', 'region': 'MOs2/3'}, {'sampleid': 'sample', 'name': 'AA0407.swc', 'region': 'MOs2/3'}, {'sampleid': 'sample', 'name': 'AA0402.swc', 'region': 'MOs2/3'}, {'sampleid': 'sample', 'name': 'AA0395.swc', 'region': 'MOs2/3'}, {'sampleid': 'sample', 'name': 'AA0329.swc', 'region': 'MOs2/3'}, {'sampleid': 'sample', 'name': 'AA0291.swc', 'region': 'MOs2/3'}, {'sampleid': 'sample', 'name': 'AA0284.swc', 'region': 'MOs2/3'}, {'sampleid': 'sample', 'name': 'AA0241.swc', 'region': 'MOs2/3'}, {'sampleid': 'sample', 'name': 'AA0238.swc', 'region': 'ACAd2/3'}, {'sampleid': 'sample', 'name': 'AA0237.swc', 'region': 'MOs2/3'}, {'sampleid': 'sample', 'name': 'AA0232.swc', 'region': 'MOs2/3'}, {'sampleid': 'sample', 'name': 'AA0118.swc', 'region': 'MOs2/3'}, {'sampleid': 'sample', 'name': 'AA0116.swc', 'region': 'MOs2/3'}, {'sampleid': 'sample', 'name': 'AA0014.swc', 'region': 'MOs2/3'}, {'sampleid': 'sample', 'name': 'AA0013.swc', 'region': 'MOs2/3'}, {'sampleid': 'sample', 'name': 'AA0009.swc', 'region': 'MOp2/3'}, {'sampleid': 'sample', 'name': 'AA0007.swc', 'region': 'SSp-ul2/3'}, {'sampleid': 'sample', 'name': 'AA0006.swc', 'region': 'MOp2/3'}, {'sampleid': 'sample', 'name': 'AA0003.swc', 'region': 'MOp2/3'}]\n",
      "[{'sampleid': 'sample', 'name': 'AA0913.swc', 'region': 'MOs5'}, {'sampleid': 'sample', 'name': 'AA0907.swc', 'region': 'MOs5'}, {'sampleid': 'sample', 'name': 'AA0906.swc', 'region': 'MOs5'}, {'sampleid': 'sample', 'name': 'AA0905.swc', 'region': 'MOs5'}, {'sampleid': 'sample', 'name': 'AA0889.swc', 'region': 'MOs5'}, {'sampleid': 'sample', 'name': 'AA0888.swc', 'region': 'MOs5'}, {'sampleid': 'sample', 'name': 'AA0887.swc', 'region': 'MOs5'}, {'sampleid': 'sample', 'name': 'AA0883.swc', 'region': 'ACAd5'}, {'sampleid': 'sample', 'name': 'AA0880.swc', 'region': 'MOs5'}, {'sampleid': 'sample', 'name': 'AA0874.swc', 'region': 'ACAd5'}, {'sampleid': 'sample', 'name': 'AA0868.swc', 'region': 'MOs5'}, {'sampleid': 'sample', 'name': 'AA0867.swc', 'region': 'ACAd5'}, {'sampleid': 'sample', 'name': 'AA0858.swc', 'region': 'MOs5'}, {'sampleid': 'sample', 'name': 'AA0853.swc', 'region': 'MOs5'}, {'sampleid': 'sample', 'name': 'AA0842.swc', 'region': 'MOs5'}, {'sampleid': 'sample', 'name': 'AA0841.swc', 'region': 'MOs5'}, {'sampleid': 'sample', 'name': 'AA0840.swc', 'region': 'MOs5'}, {'sampleid': 'sample', 'name': 'AA0798.swc', 'region': 'MOs5'}, {'sampleid': 'sample', 'name': 'AA0797.swc', 'region': 'MOs5'}, {'sampleid': 'sample', 'name': 'AA0790.swc', 'region': 'MOs5'}, {'sampleid': 'sample', 'name': 'AA0789.swc', 'region': 'MOs5'}, {'sampleid': 'sample', 'name': 'AA0786.swc', 'region': 'MOs5'}, {'sampleid': 'sample', 'name': 'AA0774.swc', 'region': 'MOs5'}, {'sampleid': 'sample', 'name': 'AA0773.swc', 'region': 'MOs5'}, {'sampleid': 'sample', 'name': 'AA0771.swc', 'region': 'ACAd5'}, {'sampleid': 'sample', 'name': 'AA0767.swc', 'region': 'MOs5'}, {'sampleid': 'sample', 'name': 'AA0749.swc', 'region': 'MOs5'}, {'sampleid': 'sample', 'name': 'AA0746.swc', 'region': 'MOs5'}, {'sampleid': 'sample', 'name': 'AA0745.swc', 'region': 'MOs5'}, {'sampleid': 'sample', 'name': 'AA0744.swc', 'region': 'MOs5'}, {'sampleid': 'sample', 'name': 'AA0743.swc', 'region': 'MOs5'}, {'sampleid': 'sample', 'name': 'AA0742.swc', 'region': 'MOs5'}, {'sampleid': 'sample', 'name': 'AA0735.swc', 'region': 'MOs5'}, {'sampleid': 'sample', 'name': 'AA0734.swc', 'region': 'MOs5'}, {'sampleid': 'sample', 'name': 'AA0669.swc', 'region': 'MOs5'}, {'sampleid': 'sample', 'name': 'AA0668.swc', 'region': 'MOs5'}, {'sampleid': 'sample', 'name': 'AA0664.swc', 'region': 'MOs5'}, {'sampleid': 'sample', 'name': 'AA0656.swc', 'region': 'MOs5'}, {'sampleid': 'sample', 'name': 'AA0646.swc', 'region': 'MOs5'}, {'sampleid': 'sample', 'name': 'AA0644.swc', 'region': 'MOs5'}, {'sampleid': 'sample', 'name': 'AA0632.swc', 'region': 'MOs5'}, {'sampleid': 'sample', 'name': 'AA0600.swc', 'region': 'MOs5'}, {'sampleid': 'sample', 'name': 'AA0588.swc', 'region': 'MOp5'}, {'sampleid': 'sample', 'name': 'AA0578.swc', 'region': 'MOs5'}, {'sampleid': 'sample', 'name': 'AA0575.swc', 'region': 'MOs5'}, {'sampleid': 'sample', 'name': 'AA0556.swc', 'region': 'MOs5'}, {'sampleid': 'sample', 'name': 'AA0534.swc', 'region': 'MOs5'}, {'sampleid': 'sample', 'name': 'AA0481.swc', 'region': 'MOs5'}, {'sampleid': 'sample', 'name': 'AA0466.swc', 'region': 'MOs5'}, {'sampleid': 'sample', 'name': 'AA0465.swc', 'region': 'MOs5'}, {'sampleid': 'sample', 'name': 'AA0462.swc', 'region': 'MOs5'}, {'sampleid': 'sample', 'name': 'AA0460.swc', 'region': 'MOs5'}, {'sampleid': 'sample', 'name': 'AA0452.swc', 'region': 'MOs5'}, {'sampleid': 'sample', 'name': 'AA0445.swc', 'region': 'MOs5'}, {'sampleid': 'sample', 'name': 'AA0442.swc', 'region': 'MOs5'}, {'sampleid': 'sample', 'name': 'AA0441.swc', 'region': 'MOs5'}, {'sampleid': 'sample', 'name': 'AA0440.swc', 'region': 'MOs5'}, {'sampleid': 'sample', 'name': 'AA0422.swc', 'region': 'MOs5'}, {'sampleid': 'sample', 'name': 'AA0421.swc', 'region': 'MOs5'}, {'sampleid': 'sample', 'name': 'AA0413.swc', 'region': 'MOs5'}, {'sampleid': 'sample', 'name': 'AA0412.swc', 'region': 'MOs5'}, {'sampleid': 'sample', 'name': 'AA0411.swc', 'region': 'MOs5'}, {'sampleid': 'sample', 'name': 'AA0400.swc', 'region': 'MOs5'}, {'sampleid': 'sample', 'name': 'AA0397.swc', 'region': 'MOs5'}, {'sampleid': 'sample', 'name': 'AA0396.swc', 'region': 'FRP5'}, {'sampleid': 'sample', 'name': 'AA0332.swc', 'region': 'MOs5'}, {'sampleid': 'sample', 'name': 'AA0327.swc', 'region': 'MOs5'}, {'sampleid': 'sample', 'name': 'AA0324.swc', 'region': 'MOs5'}, {'sampleid': 'sample', 'name': 'AA0300.swc', 'region': 'MOs5'}, {'sampleid': 'sample', 'name': 'AA0289.swc', 'region': 'MOs5'}, {'sampleid': 'sample', 'name': 'AA0288.swc', 'region': 'MOs5'}, {'sampleid': 'sample', 'name': 'AA0287.swc', 'region': 'MOs5'}, {'sampleid': 'sample', 'name': 'AA0286.swc', 'region': 'MOs5'}, {'sampleid': 'sample', 'name': 'AA0285.swc', 'region': 'MOs5'}, {'sampleid': 'sample', 'name': 'AA0281.swc', 'region': 'MOs5'}, {'sampleid': 'sample', 'name': 'AA0279.swc', 'region': 'MOs5'}, {'sampleid': 'sample', 'name': 'AA0276.swc', 'region': 'MOs5'}, {'sampleid': 'sample', 'name': 'AA0274.swc', 'region': 'MOs5'}, {'sampleid': 'sample', 'name': 'AA0272.swc', 'region': 'MOp5'}, {'sampleid': 'sample', 'name': 'AA0271.swc', 'region': 'MOs5'}, {'sampleid': 'sample', 'name': 'AA0269.swc', 'region': 'MOs5'}, {'sampleid': 'sample', 'name': 'AA0267.swc', 'region': 'MOs5'}, {'sampleid': 'sample', 'name': 'AA0265.swc', 'region': 'MOs5'}, {'sampleid': 'sample', 'name': 'AA0236.swc', 'region': 'MOs5'}, {'sampleid': 'sample', 'name': 'AA0235.swc', 'region': 'MOs5'}, {'sampleid': 'sample', 'name': 'AA0233.swc', 'region': 'MOs5'}, {'sampleid': 'sample', 'name': 'AA0230.swc', 'region': 'MOs5'}, {'sampleid': 'sample', 'name': 'AA0190.swc', 'region': 'MOs5'}, {'sampleid': 'sample', 'name': 'AA0184.swc', 'region': 'MOs5'}, {'sampleid': 'sample', 'name': 'AA0130.swc', 'region': 'MOs5'}, {'sampleid': 'sample', 'name': 'AA0112.swc', 'region': 'MOs5'}, {'sampleid': 'sample', 'name': 'AA0108.swc', 'region': 'MOs5'}, {'sampleid': 'sample', 'name': 'AA0106.swc', 'region': 'MOs5'}, {'sampleid': 'sample', 'name': 'AA0102.swc', 'region': 'MOp5'}, {'sampleid': 'sample', 'name': 'AA0100.swc', 'region': 'MOs5'}, {'sampleid': 'sample', 'name': 'AA0099.swc', 'region': 'MOs5'}, {'sampleid': 'sample', 'name': 'AA0065.swc', 'region': 'MOs5'}, {'sampleid': 'sample', 'name': 'AA0064.swc', 'region': 'MOs5'}, {'sampleid': 'sample', 'name': 'AA0059.swc', 'region': 'MOs5'}, {'sampleid': 'sample', 'name': 'AA0046.swc', 'region': 'MOp5'}, {'sampleid': 'sample', 'name': 'AA0037.swc', 'region': 'MOs5'}, {'sampleid': 'sample', 'name': 'AA0036.swc', 'region': 'MOs5'}, {'sampleid': 'sample', 'name': 'AA0035.swc', 'region': 'MOp5'}, {'sampleid': 'sample', 'name': 'AA0034.swc', 'region': 'MOp5'}, {'sampleid': 'sample', 'name': 'AA0010.swc', 'region': 'MOs5'}, {'sampleid': 'sample', 'name': 'AA0004.swc', 'region': 'MOp5'}, {'sampleid': 'sample', 'name': 'AA0002.swc', 'region': 'MOp5'}]\n",
      "[{'sampleid': 'sample', 'name': 'AA0911.swc', 'region': 'FRP6a'}, {'sampleid': 'sample', 'name': 'AA0908.swc', 'region': 'MOs6a'}, {'sampleid': 'sample', 'name': 'AA0900.swc', 'region': 'MOs6a'}, {'sampleid': 'sample', 'name': 'AA0876.swc', 'region': 'MOs6a'}, {'sampleid': 'sample', 'name': 'AA0854.swc', 'region': 'MOs6a'}, {'sampleid': 'sample', 'name': 'AA0784.swc', 'region': 'MOs6a'}, {'sampleid': 'sample', 'name': 'AA0781.swc', 'region': 'MOs6a'}, {'sampleid': 'sample', 'name': 'AA0775.swc', 'region': 'ACAd6a'}, {'sampleid': 'sample', 'name': 'AA0748.swc', 'region': 'MOs6a'}, {'sampleid': 'sample', 'name': 'AA0747.swc', 'region': 'MOs6a'}, {'sampleid': 'sample', 'name': 'AA0741.swc', 'region': 'ORBl6a'}, {'sampleid': 'sample', 'name': 'AA0739.swc', 'region': 'MOs6a'}, {'sampleid': 'sample', 'name': 'AA0733.swc', 'region': 'MOs6a'}, {'sampleid': 'sample', 'name': 'AA0650.swc', 'region': 'MOs6a'}, {'sampleid': 'sample', 'name': 'AA0602.swc', 'region': 'MOs6a'}, {'sampleid': 'sample', 'name': 'AA0553.swc', 'region': 'MOs6a'}, {'sampleid': 'sample', 'name': 'AA0549.swc', 'region': 'MOs6a'}, {'sampleid': 'sample', 'name': 'AA0543.swc', 'region': 'MOs6a'}, {'sampleid': 'sample', 'name': 'AA0541.swc', 'region': 'MOs6a'}, {'sampleid': 'sample', 'name': 'AA0473.swc', 'region': 'MOs6a'}, {'sampleid': 'sample', 'name': 'AA0464.swc', 'region': 'MOs6a'}, {'sampleid': 'sample', 'name': 'AA0463.swc', 'region': 'MOs6a'}, {'sampleid': 'sample', 'name': 'AA0461.swc', 'region': 'FRP6a'}, {'sampleid': 'sample', 'name': 'AA0457.swc', 'region': 'PL6a'}, {'sampleid': 'sample', 'name': 'AA0410.swc', 'region': 'MOs6a'}, {'sampleid': 'sample', 'name': 'AA0408.swc', 'region': 'MOs6a'}, {'sampleid': 'sample', 'name': 'AA0406.swc', 'region': 'ORBvl6a'}, {'sampleid': 'sample', 'name': 'AA0404.swc', 'region': 'MOs6a'}, {'sampleid': 'sample', 'name': 'AA0401.swc', 'region': 'MOs6a'}, {'sampleid': 'sample', 'name': 'AA0333.swc', 'region': 'FRP6a'}, {'sampleid': 'sample', 'name': 'AA0323.swc', 'region': 'ORBl6a'}, {'sampleid': 'sample', 'name': 'AA0320.swc', 'region': 'ORBl6a'}, {'sampleid': 'sample', 'name': 'AA0280.swc', 'region': 'MOs6a'}, {'sampleid': 'sample', 'name': 'AA0243.swc', 'region': 'MOs6a'}, {'sampleid': 'sample', 'name': 'AA0240.swc', 'region': 'MOs6a'}, {'sampleid': 'sample', 'name': 'AA0239.swc', 'region': 'MOs6a'}, {'sampleid': 'sample', 'name': 'AA0231.swc', 'region': 'ACAd6a'}, {'sampleid': 'sample', 'name': 'AA0225.swc', 'region': 'MOp6a'}, {'sampleid': 'sample', 'name': 'AA0224.swc', 'region': 'MOp6a'}, {'sampleid': 'sample', 'name': 'AA0140.swc', 'region': 'MOs6a'}, {'sampleid': 'sample', 'name': 'AA0113.swc', 'region': 'ACAd6a'}, {'sampleid': 'sample', 'name': 'AA0111.swc', 'region': 'ACAd6a'}, {'sampleid': 'sample', 'name': 'AA0110.swc', 'region': 'MOs6a'}, {'sampleid': 'sample', 'name': 'AA0107.swc', 'region': 'MOp6a'}, {'sampleid': 'sample', 'name': 'AA0062.swc', 'region': 'MOs6a'}, {'sampleid': 'sample', 'name': 'AA0060.swc', 'region': 'MOp6a'}, {'sampleid': 'sample', 'name': 'AA0044.swc', 'region': 'MOs6a'}, {'sampleid': 'sample', 'name': 'AA0042.swc', 'region': 'MOp6a'}, {'sampleid': 'sample', 'name': 'AA0040.swc', 'region': 'MOp6a'}, {'sampleid': 'sample', 'name': 'AA0005.swc', 'region': 'MOp6a'}]\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "exist  G:\\workspace\\neuron-vis/neuronVis/../resource/json/sample/AA0911.swc.json\n",
      "exist  G:\\workspace\\neuron-vis/neuronVis/../resource/json/sample/AA0908.swc.json\n",
      "exist  G:\\workspace\\neuron-vis/neuronVis/../resource/json/sample/AA0900.swc.json\n",
      "exist  G:\\workspace\\neuron-vis/neuronVis/../resource/json/sample/AA0876.swc.json\n",
      "exist  G:\\workspace\\neuron-vis/neuronVis/../resource/json/sample/AA0854.swc.json\n",
      "exist  G:\\workspace\\neuron-vis/neuronVis/../resource/json/sample/AA0784.swc.json\n",
      "exist  G:\\workspace\\neuron-vis/neuronVis/../resource/json/sample/AA0781.swc.json\n",
      "exist  G:\\workspace\\neuron-vis/neuronVis/../resource/json/sample/AA0775.swc.json\n",
      "unknow\n",
      "unknow\n",
      "unknow\n",
      "exist  G:\\workspace\\neuron-vis/neuronVis/../resource/json/sample/AA0748.swc.json\n",
      "exist  G:\\workspace\\neuron-vis/neuronVis/../resource/json/sample/AA0747.swc.json\n",
      "fibertracts\n",
      "unknow\n",
      "fibertracts\n",
      "unknow\n",
      "fibertracts\n",
      "unknow\n",
      "exist  G:\\workspace\\neuron-vis/neuronVis/../resource/json/sample/AA0741.swc.json\n",
      "exist  G:\\workspace\\neuron-vis/neuronVis/../resource/json/sample/AA0739.swc.json\n",
      "exist  G:\\workspace\\neuron-vis/neuronVis/../resource/json/sample/AA0733.swc.json\n",
      "exist  G:\\workspace\\neuron-vis/neuronVis/../resource/json/sample/AA0650.swc.json\n",
      "exist  G:\\workspace\\neuron-vis/neuronVis/../resource/json/sample/AA0602.swc.json\n",
      "exist  G:\\workspace\\neuron-vis/neuronVis/../resource/json/sample/AA0553.swc.json\n",
      "exist  G:\\workspace\\neuron-vis/neuronVis/../resource/json/sample/AA0549.swc.json\n",
      "exist  G:\\workspace\\neuron-vis/neuronVis/../resource/json/sample/AA0543.swc.json\n",
      "exist  G:\\workspace\\neuron-vis/neuronVis/../resource/json/sample/AA0541.swc.json\n",
      "exist  G:\\workspace\\neuron-vis/neuronVis/../resource/json/sample/AA0473.swc.json\n",
      "exist  G:\\workspace\\neuron-vis/neuronVis/../resource/json/sample/AA0464.swc.json\n",
      "exist  G:\\workspace\\neuron-vis/neuronVis/../resource/json/sample/AA0463.swc.json\n",
      "exist  G:\\workspace\\neuron-vis/neuronVis/../resource/json/sample/AA0461.swc.json\n",
      "exist  G:\\workspace\\neuron-vis/neuronVis/../resource/json/sample/AA0457.swc.json\n",
      "exist  G:\\workspace\\neuron-vis/neuronVis/../resource/json/sample/AA0410.swc.json\n",
      "exist  G:\\workspace\\neuron-vis/neuronVis/../resource/json/sample/AA0408.swc.json\n",
      "exist  G:\\workspace\\neuron-vis/neuronVis/../resource/json/sample/AA0406.swc.json\n",
      "exist  G:\\workspace\\neuron-vis/neuronVis/../resource/json/sample/AA0404.swc.json\n",
      "unknow\n",
      "unknow\n",
      "unknow\n",
      "exist  G:\\workspace\\neuron-vis/neuronVis/../resource/json/sample/AA0401.swc.json\n",
      "exist  G:\\workspace\\neuron-vis/neuronVis/../resource/json/sample/AA0333.swc.json\n",
      "exist  G:\\workspace\\neuron-vis/neuronVis/../resource/json/sample/AA0323.swc.json\n",
      "exist  G:\\workspace\\neuron-vis/neuronVis/../resource/json/sample/AA0320.swc.json\n",
      "exist  G:\\workspace\\neuron-vis/neuronVis/../resource/json/sample/AA0280.swc.json\n",
      "exist  G:\\workspace\\neuron-vis/neuronVis/../resource/json/sample/AA0243.swc.json\n",
      "exist  G:\\workspace\\neuron-vis/neuronVis/../resource/json/sample/AA0240.swc.json\n",
      "exist  G:\\workspace\\neuron-vis/neuronVis/../resource/json/sample/AA0239.swc.json\n",
      "exist  G:\\workspace\\neuron-vis/neuronVis/../resource/json/sample/AA0231.swc.json\n",
      "exist  G:\\workspace\\neuron-vis/neuronVis/../resource/json/sample/AA0225.swc.json\n",
      "exist  G:\\workspace\\neuron-vis/neuronVis/../resource/json/sample/AA0224.swc.json\n",
      "unknow\n",
      "unknow\n",
      "unknow\n",
      "exist  G:\\workspace\\neuron-vis/neuronVis/../resource/json/sample/AA0140.swc.json\n",
      "exist  G:\\workspace\\neuron-vis/neuronVis/../resource/json/sample/AA0113.swc.json\n",
      "unknow\n",
      "unknow\n",
      "unknow\n",
      "exist  G:\\workspace\\neuron-vis/neuronVis/../resource/json/sample/AA0111.swc.json\n",
      "exist  G:\\workspace\\neuron-vis/neuronVis/../resource/json/sample/AA0110.swc.json\n",
      "unknow\n",
      "unknow\n",
      "unknow\n",
      "exist  G:\\workspace\\neuron-vis/neuronVis/../resource/json/sample/AA0107.swc.json\n",
      "exist  G:\\workspace\\neuron-vis/neuronVis/../resource/json/sample/AA0062.swc.json\n",
      "exist  G:\\workspace\\neuron-vis/neuronVis/../resource/json/sample/AA0060.swc.json\n",
      "exist  G:\\workspace\\neuron-vis/neuronVis/../resource/json/sample/AA0044.swc.json\n",
      "exist  G:\\workspace\\neuron-vis/neuronVis/../resource/json/sample/AA0042.swc.json\n",
      "exist  G:\\workspace\\neuron-vis/neuronVis/../resource/json/sample/AA0040.swc.json\n",
      "exist  G:\\workspace\\neuron-vis/neuronVis/../resource/json/sample/AA0005.swc.json\n",
      "              sample-AA0911.swc  sample-AA0908.swc  sample-AA0900.swc  \\\n",
      "Total                  7.595736           5.769359           5.694605   \n",
      "Cortex                 6.999596           5.769359           4.180586   \n",
      "CortexIpsi             6.290374           5.769359           4.180586   \n",
      "CortexContra           5.663767           0.000000           0.000000   \n",
      "Motor                  6.197560           4.921392           2.660940   \n",
      "Other                  5.796277           4.657716           3.679092   \n",
      "STR                    5.774260           0.000000           4.972619   \n",
      "STRIpsi                4.866439           0.000000           4.972619   \n",
      "STRContra              4.731155           0.000000           0.000000   \n",
      "\n",
      "              sample-AA0876.swc  sample-AA0854.swc  sample-AA0784.swc  \\\n",
      "Total                  7.154874           5.487525           6.242491   \n",
      "Cortex                 6.782176           1.786757           2.376554   \n",
      "CortexIpsi             6.043382           1.786757           2.376554   \n",
      "CortexContra           5.495328           0.000000           0.000000   \n",
      "Motor                  6.503129           1.786757           2.240226   \n",
      "Other                  4.347390           0.000000           0.554087   \n",
      "STR                    4.620105           1.606934           1.794631   \n",
      "STRIpsi                3.756448           1.606934           1.794631   \n",
      "STRContra              3.594209           0.000000           0.000000   \n",
      "\n",
      "              sample-AA0781.swc  sample-AA0775.swc  sample-AA0748.swc  \\\n",
      "Total                  5.647325           6.783310           6.929938   \n",
      "Cortex                 3.685187           6.695353           6.673097   \n",
      "CortexIpsi             3.685187           6.690683           5.821910   \n",
      "CortexContra           0.000000           0.416735           5.538528   \n",
      "Motor                  3.593695           5.909185           6.182150   \n",
      "Other                  0.840304           5.476980           4.927652   \n",
      "STR                    1.599364           0.000000           3.455383   \n",
      "STRIpsi                1.599364           0.000000           0.000000   \n",
      "STRContra              0.000000           0.000000           3.455383   \n",
      "\n",
      "              sample-AA0747.swc  ...  sample-AA0113.swc  sample-AA0111.swc  \\\n",
      "Total                  6.125065  ...           7.454933           5.029166   \n",
      "Cortex                 5.453876  ...           7.304032           5.029166   \n",
      "CortexIpsi             5.453876  ...           7.174482           5.029166   \n",
      "CortexContra           0.000000  ...           3.865123           0.000000   \n",
      "Motor                  4.626160  ...           6.198558           2.273751   \n",
      "Other                  4.331680  ...           6.419274           4.848885   \n",
      "STR                    3.067237  ...           1.263989           0.000000   \n",
      "STRIpsi                3.067237  ...           1.263989           0.000000   \n",
      "STRContra              0.000000  ...           0.000000           0.000000   \n",
      "\n",
      "              sample-AA0110.swc  sample-AA0107.swc  sample-AA0062.swc  \\\n",
      "Total                  5.978973           5.826698           7.108987   \n",
      "Cortex                 5.895326           5.627942           6.717794   \n",
      "CortexIpsi             5.891477           5.004869           5.577925   \n",
      "CortexContra           0.212361           4.197181           5.870170   \n",
      "Motor                  5.206838           4.817462           5.803483   \n",
      "Other                  4.559981           4.476033           5.655599   \n",
      "STR                    0.000000           0.811201           4.291174   \n",
      "STRIpsi                0.000000           0.518564           0.255022   \n",
      "STRContra              0.000000           0.402877           4.276855   \n",
      "\n",
      "              sample-AA0060.swc  sample-AA0044.swc  sample-AA0042.swc  \\\n",
      "Total                  5.612360           4.203400           7.610227   \n",
      "Cortex                 5.612360           4.203400           7.412526   \n",
      "CortexIpsi             5.612360           4.203400           6.846121   \n",
      "CortexContra           0.000000           0.000000           5.815562   \n",
      "Motor                  5.246744           4.179558           6.843187   \n",
      "Other                  3.579107           0.380666           5.821538   \n",
      "STR                    0.000000           0.000000           3.897057   \n",
      "STRIpsi                0.000000           0.000000           0.238832   \n",
      "STRContra              0.000000           0.000000           3.879517   \n",
      "\n",
      "              sample-AA0040.swc  sample-AA0005.swc  \n",
      "Total                  4.416375           7.262244  \n",
      "Cortex                 4.415311           7.046386  \n",
      "CortexIpsi             4.415311           6.764770  \n",
      "CortexContra           0.000000           4.611170  \n",
      "Motor                  4.375747           6.378783  \n",
      "Other                  0.657362           5.642895  \n",
      "STR                    0.000000           3.026302  \n",
      "STRIpsi                0.000000           0.908685  \n",
      "STRContra              0.000000           2.861926  \n",
      "\n",
      "[9 rows x 50 columns]\n"
     ]
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 720x720 with 4 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import sys,copy,os\n",
    "sys.path.append(os.getcwd()+\"/neuronVis\")\n",
    "import json\n",
    "\n",
    "import IONData as IONData \n",
    "import BrainRegion as BR \n",
    "import Cluster\n",
    "import Visual as nv\n",
    "\n",
    "import numpy as np\n",
    "from scipy.spatial import Delaunay\n",
    "import matplotlib.pyplot as plt\n",
    "import pandas as pd\n",
    "import seaborn\tas sns\n",
    "f=open('./resource/paper1figure5list.json', encoding='gbk')\n",
    "paper1figure5list=[]\n",
    "paper1figure5list = json.load(f)\n",
    "# print(paper1figure5list)\n",
    "\n",
    "layer2_3list=[]\n",
    "layer5list=[]\n",
    "layer6list=[]\n",
    "for neuron in paper1figure5list:\n",
    "\tif '2/3' in neuron['region']:\n",
    "\t\tlayer2_3list.append(neuron)\n",
    "\tif '5' in neuron['region']:\n",
    "\t\tlayer5list.append(neuron)\n",
    "\tif '6' in neuron['region']:\n",
    "\t\tlayer6list.append(neuron)\n",
    "\n",
    "print((layer2_3list))\n",
    "print((layer5list))\n",
    "print((layer6list))\n",
    "\n",
    "br = BR.BrainRegion()\n",
    "br.praseJson()\n",
    "\n",
    "df = pd.DataFrame()\n",
    "\n",
    "iondata=IONData.IONData()\n",
    "\n",
    "for neuron in layer6list:\n",
    "\tbrproperty=BR.RegionProperty(copy.deepcopy(br))\n",
    "\tbrpropertyLeft=BR.RegionProperty(copy.deepcopy(br))\n",
    "\tbrpropertyRight=BR.RegionProperty(copy.deepcopy(br))\n",
    "\tprop=[]\n",
    "\tproperty = iondata.getNeuronPropertyByID(neuron['sampleid'], neuron['name'])\n",
    "\tbrproperty.setProperty(property['projectregion'])\n",
    "\tbrpropertyLeft.setProperty(property['projectleftregion'])\n",
    "\tbrpropertyRight.setProperty(property['projectrightregion'])\n",
    "\n",
    "\tprop.append(property['axonlength'])\n",
    "\n",
    "\t#cortex length\n",
    "\tctxlist = brproperty.getRegionPropertyList('CTX')\n",
    "\tctxsum=0\n",
    "\tfor subregion in ctxlist:\n",
    "\t\tctxsum=ctxsum+subregion[2]\n",
    "\tprop.append(ctxsum)\n",
    "\n",
    "\t#ipsi contra cortex length\n",
    "\tleftctxlist = brpropertyLeft.getRegionPropertyList('CTX')\n",
    "\trightctxlist = brpropertyRight.getRegionPropertyList('CTX')\n",
    "\tleftctxsum=0\n",
    "\tfor subregion in leftctxlist:\n",
    "\t\tleftctxsum=leftctxsum+subregion[2]\n",
    "\trightctxsum=0\n",
    "\tfor subregion in rightctxlist:\n",
    "\t\trightctxsum=rightctxsum+subregion[2]\n",
    "\tipsi=0\n",
    "\tcontra=0\n",
    "\tif property['somapoint'][2]<5700:\n",
    "\t\tipsi=leftctxsum\n",
    "\t\tcontra=rightctxsum\n",
    "\telse:\n",
    "\t\tipsi=rightctxsum\n",
    "\t\tcontra=leftctxsum\n",
    "\tprop.append(ipsi)\n",
    "\tprop.append(contra)\n",
    "\n",
    "\n",
    "\t#motor cortex length\n",
    "\tmolist = brproperty.getRegionPropertyList('MO')\n",
    "\tmosum=0\n",
    "\tfor subregion in molist:\n",
    "\t\tmosum=mosum+subregion[2]\n",
    "\tprop.append(mosum)\n",
    "\n",
    "\t#other cortex length\n",
    "\tprop.append(ctxsum-mosum)\n",
    "\n",
    "\t# STR\n",
    "\tstrlist = brproperty.getRegionPropertyList('STR')\n",
    "\tstrsum=0\n",
    "\tfor subregion in strlist:\n",
    "\t\tstrsum=strsum+subregion[2]\n",
    "\tprop.append(strsum)\n",
    "\n",
    "\t#ipsi contra str length\n",
    "\tleftstrlist = brpropertyLeft.getRegionPropertyList('STR')\n",
    "\trightstrlist = brpropertyRight.getRegionPropertyList('STR')\n",
    "\tleftctxsum=0\n",
    "\tfor subregion in leftstrlist:\n",
    "\t\tleftctxsum=leftctxsum+subregion[2]\n",
    "\trightctxsum=0\n",
    "\tfor subregion in rightstrlist:\n",
    "\t\trightctxsum=rightctxsum+subregion[2]\n",
    "\tipsi=0\n",
    "\tcontra=0\n",
    "\tif property['somapoint'][2]<5700:\n",
    "\t\tipsi=leftctxsum\n",
    "\t\tcontra=rightctxsum\n",
    "\telse:\n",
    "\t\tipsi=rightctxsum\n",
    "\t\tcontra=leftctxsum\n",
    "\tprop.append(ipsi)\n",
    "\tprop.append(contra)\n",
    "\n",
    "\tdf[neuron['sampleid']+\"-\"+neuron['name']]=prop\n",
    "\n",
    "\n",
    "\n",
    "df.set_index(pd.Index(['Total', 'Cortex', 'CortexIpsi', 'CortexContra','Motor','Other','STR','STRIpsi','STRContra']),inplace=True, drop = True)\n",
    "df=(np.log2(df/1000.0+1))\n",
    "print(df)\n",
    "\n",
    "# cluster= Cluster.Cluster()\n",
    "# cluster.fclusterDF(df)\n",
    "# print(cluster.cluster)\n",
    "# plt.show()\n",
    "\n",
    "cmap= sns.dark_palette('black',reverse=True,n_colors=50)\n",
    "# cmap= sns.dark_palette('blue',reverse=True,n_colors=50)\n",
    "cmap2=sns.dark_palette('blue',reverse=False,n_colors=25)\n",
    "cmap3=sns.dark_palette('blue',reverse=True,n_colors=25)\n",
    "cmap4=sns.dark_palette('yellow',reverse=False,n_colors=50)\n",
    "cmap.extend(cmap2)\n",
    "cmap.extend(cmap3)\n",
    "cmap.extend(cmap4)\n",
    "# cmap.append(np.array([.3,.7,.6,1]))\n",
    "# cmap.insert(0,np.array([.7,.7,.5,1]))\n",
    "\n",
    "# sns.heatmap(df,cmap=cmap)\n",
    "\n",
    "\n",
    "sns.clustermap(df, fmt=\"d\", cmap=cmap,xticklabels=True,yticklabels=True,row_cluster=False)\n",
    "plt.show()\n",
    "\n",
    "## render\n",
    "# neuronvis = nv.neuronVis()\n",
    "# neuronvis.addNeuronByList(layer6list[1:3])\n",
    "# # neuronvis.addNeuronByID(paper1figure5list[100]['sampleid'],paper1figure5list[100]['name'])\n",
    "# # neuronvis.render.setView('posterior')\n",
    "# neuronvis.render.setLookAt((-10000,-10000,-10000),(0,0,0),(0,1,0))\n",
    "# neuronvis.render\n",
    "\n",
    "# # # neuronvis.render.savepng('./resource/test2.png')\n",
    "# nv.app.run()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "exist  D:\\project\\python\\neuron-vis/neuronVis/../resource/swc/192106/033.swc\n"
     ]
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 864x864 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import sys,copy,os\n",
    "sys.path.append(os.getcwd()+\"/neuronVis\")\n",
    "import json\n",
    "import matplotlib.pyplot as plt\n",
    "import numpy as np\n",
    "import IONData \n",
    "import SwcLoader\n",
    "iondata =IONData.IONData()\n",
    "\n",
    "swc = iondata.getNeuronByID('192106', '033.swc')\n",
    "\n",
    "neuron = SwcLoader.NeuronTree()\n",
    "neuron.readSWC(swc)\n",
    "plt.figure(figsize=(12, 12))\n",
    "axes0 = plt.subplot(111)\n",
    "plt.axis('off')\n",
    "axes0.set_xlim(0, 10000)\n",
    "axes0.set_ylim(0, 10000)\n",
    "# plt.Circle((neuron.root.z, neuron.root.y), 300)\n",
    "for edge in neuron.edges:\n",
    "    x=[]\n",
    "    y=[]\n",
    "    for p in edge:\n",
    "        x.append(10000-p.z)\n",
    "        y.append(10000-p.y)\n",
    "    plt.plot(x, y,color='#FFDD44')\n",
    "# plt.figure(facecolor='gainsboro')\n",
    "plt.plot(10000-neuron.root.z,10000- neuron.root.y,'ob')\n",
    "\n",
    "\n",
    "plt.savefig(fname=\"./resource/neuron.svg\",format=\"svg\")\n",
    "plt.show()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 451,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "D:/project/python/neuron-vis/neuronVis/../resource/annotation_10_2017.nrrd D:/project/python/neuron-vis/neuronVis/../resource/mask_combinedISO_CLA.nrrd D:/project/python/neuron-vis/neuronVis/../resource/isocortex_boundary_10.nrrd downloaded!\n",
      "[191474944 179858944 178802944 ...  72441015 106951095 254791095]\n"
     ]
    }
   ],
   "source": [
    "import sys\n",
    "sys.path.append(r\"D:/project/python/neuron-vis/neuronVis\")\n",
    "from skimage import measure,io\n",
    "import IONData\n",
    "import nrrd\n",
    "import trimesh\n",
    "import networkx as nx\n",
    "\n",
    "iondata = IONData.IONData()\n",
    "res,annotationPath= iondata.getAnnotation()\n",
    "resISOCLA,isoclaPath=iondata.getFileFromServer('mask_combinedISO_CLA.nrrd')\n",
    "resBoundary,boundaryPath=iondata.getFileFromServer('isocortex_boundary_10.nrrd')\n",
    "if res and resISOCLA and resBoundary:\n",
    "\tprint(annotationPath,isoclaPath,boundaryPath,'downloaded!')\n",
    "\n",
    "annotation,annoHeader = nrrd.read(annotationPath,index_order='F')\n",
    "mask_combined,CLAHeader = nrrd.read(isoclaPath,index_order='F')\n",
    "boundary,boundaryHeader = nrrd.read(boundaryPath,index_order='F')\n",
    "mask_combined\n",
    "[ROW, COL, SLICE] = mask_combined.shape\n",
    "verts, faces, t1, t2 = measure.marching_cubes(mask_combined, 0,method='lorensen')\n",
    "\n",
    "mesh = trimesh.Trimesh(vertices=verts,\n",
    "                       faces=faces,\n",
    "                       )\n",
    "x,y,z=np.where(boundary==1)\n",
    "boundaryvert = np.hstack((x.reshape(-1,1),y.reshape(-1,1),z.reshape(-1,1)))\n",
    "verts = mesh.vertices.astype(np.Uint64)\n",
    "faces = mesh.faces\n",
    "\n",
    "vertsflat=verts[:,0]+verts[:,1]*ROW+verts[:,2]*ROW*COL\n",
    "boundaryvertflat=boundaryvert[:,0]+boundaryvert[:,1]*ROW+boundaryvert[:,2]*ROW*COL\n",
    "print(vertsflat)\n",
    "# vertsback = np.array([(vertsflat%ROW).astype(np.Uint64),((vertsflat/ROW).astype(np.Uint64)%COL).astype(np.Uint64),((vertsflat/COL).astype(np.Uint64)/ROW).astype(np.Uint64)])\n",
    "flag_vertex_superficial=np.in1d(vertsflat,boundaryvertflat)\n",
    "\n",
    "\n",
    "faceflag=flag_vertex_superficial[mesh.faces]\n",
    "flag_face_superficial=sum(faceflag.T)==3\n",
    "\n",
    "index=faces[flag_face_superficial==1,:]\n",
    "\n",
    "indexx=index[:,0];\n",
    "indexy=index[:,1];\n",
    "indexz=index[:,2];\n",
    "\n",
    "coordx=verts[indexx,:]\n",
    "coordy=verts[indexy,:]\n",
    "coordz=verts[indexz,:]\n",
    "\n",
    "squarexy = (coordx - coordy)**2;\n",
    "sqrtxy=np.sqrt(sum(squarexy.T))\n",
    "\n",
    "squareyz = (coordy - coordz)**2;\n",
    "sqrtyz=np.sqrt(sum(squareyz.T))\n",
    "\n",
    "squarexz = (coordx - coordz)**2;\n",
    "sqrtxz=np.sqrt(sum(squarexz.T))\n",
    "\n",
    "G=nx.Graph()\n",
    "x=np.hstack([indexx,indexy,indexz,indexy,indexz,indexx])\n",
    "y=np.hstack([indexy,indexz,indexx,indexx,indexy,indexz])\n",
    "dis=np.hstack([sqrtxy,sqrtyz,sqrtxz,sqrtxy,sqrtyz,sqrtxz])\n",
    "list=np.vstack([x,y,dis]).T\n",
    "G.add_weighted_edges_from(list)\n",
    "# anchor point [649,57,349]\n",
    "anchor_center_index = np.where(np.all(verts==[649,57,349],axis=1))[0]\n",
    "length=nx.single_source_shortest_path_length(G,anchor_center_index[0])\n",
    "\n",
    "anchor_center = [649,57, 349]\n",
    "coordinate_flatmap = np.zeros([len(verts),2])\n",
    "image_flatmap = np.zeros([1500, 1500])\n",
    "for iVertex in range(len(verts)):\n",
    "    if flag_vertex_superficial[iVertex]==0:\n",
    "        continue\n",
    "    tmpRow=verts[iVertex,0]\n",
    "    tmpCol=verts[iVertex,1]\n",
    "    tmpSlice=verts[iVertex,2]\n",
    "    d = np.sqrt((anchor_center[0] - tmpRow)**2 + (anchor_center[2] - tmpSlice)**2);\n",
    "    if d == 0:\n",
    "        coordinate_flatmap[iVertex, :] = [0, 0];\n",
    "        continue;\n",
    "    # print(iVertex)\n",
    "    if iVertex not in length or length[iVertex] > 1000:\n",
    "            continue;\n",
    "    tmpCoordinate = [length[iVertex]/d*(tmpSlice - anchor_center[2]), length[iVertex]/d*(tmpRow -anchor_center[0])]\n",
    "    coordinate_flatmap[iVertex, :] = [tmpCoordinate[0] + 800, tmpCoordinate[1] + 800]\n",
    "    # print(tmpRow,tmpCol,tmpSlice)\n",
    "    # print(coordinate_flatmap[iVertex, 1], coordinate_flatmap[iVertex, 0])\n",
    "    image_flatmap[int(coordinate_flatmap[iVertex, 1]), int(coordinate_flatmap[iVertex, 0])] =annotation[tmpRow, tmpCol, tmpSlice]\n",
    "nrrd.write('../resource/flatmap.nrrd',image_flatmap.T)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 637,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.image.AxesImage at 0x1aeffd67288>"
      ]
     },
     "execution_count": 637,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 432x288 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "io.imshow(image_flatmap)\n",
    "# nrrd.write('name.nrrd',image_flatmap.T)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "exist  D:/project/python/neuron-vis/neuronVis/../resource/swc/sample/AA0002.swc\n"
     ]
    }
   ],
   "source": [
    "import sys\n",
    "sys.path.append(r\"D:/project/python/neuron-vis/neuronVis\")\n",
    "import IONData\n",
    "import SwcLoader\n",
    "import Render\n",
    "import GeometryAdapter\n",
    "import BrainRegion\n",
    "import NeuronProcess\n",
    "from vispy import app\n",
    "iondata=IONData.IONData()\n",
    "swc = iondata.getNeuronByID('sample', 'AA0002.swc')\n",
    "neuron = SwcLoader.NeuronTree()\n",
    "neuron.readSWC(swc)\n",
    "newneuron=NeuronProcess.UpSampleFromNeuronTree(neuron,2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "output = r\"./resource/test1.swc\"\n",
    "o = open(output,\"w\")\n",
    "for file in newneuron.points:\n",
    "    o.write(str(file.index)+' '+str(file.type)+' '+str(file.x)+' '+str(file.y)+' '+str(file.z)+' '+str(file.ratio)+' '+str(file.parentIndex)+'\\n')\n",
    "o.close()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "\n",
    "import sys\n",
    "import copy\n",
    "import os\n",
    "sys.path.append(\"D:\\\\project\\\\python\\\\neuron-vis\\\\neuronVis\")\n",
    "import json\n",
    "import IONData\n",
    "import Flatmap\n",
    "import BoundLaplace\n",
    "import nrrd\n",
    "import numpy as np\n",
    "import matplotlib\n",
    "matplotlib.use('module://matplotlib_inline.backend_inline')\n",
    "%matplotlib inline\n",
    "\n",
    "\n",
    "layer = [120, 400, 570, 850, 1200] # in micron, SS results employing ../neuronVis/LayerThickness.py\n",
    "layerName = ['L1','L2/3','L4','L5','L6']\n",
    "\n",
    "iondata = IONData.IONData()\n",
    "\n",
    "flatenPara=Flatmap.createSurfaceGraph()\n",
    "\n",
    "res,gridpath = iondata.getFileFromServer(\"boundlaplace20.nrrd\")\n",
    "grid,header = nrrd.read(gridpath)\n",
    "\n",
    "resRelaxation,RelaxationPath=iondata.getFileFromServer('boundlaplaceout20.nrrd')\n",
    "relaxation,relaxationheader = nrrd.read(RelaxationPath)\n",
    "\n",
    "resdv0,dv0Path=iondata.getFileFromServer('dv0.nrrd')\n",
    "dv0,dv0header = nrrd.read(dv0Path)\n",
    "resdv1,dv1Path=iondata.getFileFromServer('dv1.nrrd')\n",
    "dv1,dv1header = nrrd.read(dv1Path)\n",
    "resdv2,dv2Path=iondata.getFileFromServer('dv2.nrrd')\n",
    "dv2,dv2header = nrrd.read(dv2Path)\n",
    "\n",
    "dv0=dv0.astype(np.float32)/1000-1\n",
    "dv1=dv1.astype(np.float32)/1000-1\n",
    "dv2=dv2.astype(np.float32)/1000-1\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "exist  D:\\project\\python\\neuron-vis\\neuronVis/../resource/swc/000002/1060693894_18452_5511-X26566-Y3403_reg.swc\n",
      "not in the boundary range\n",
      "[350.5429931640625, 75.110498046875, 179.03699951171876]\n",
      "not in the boundary range\n",
      "[350.6864990234375, 77.539501953125, 179.50699462890626]\n",
      "not in the boundary range\n",
      "[350.431494140625, 79.627001953125, 180.34849853515624]\n",
      "not in the boundary range\n",
      "[350.2510009765625, 79.65449829101563, 182.725]\n",
      "not in the boundary range\n",
      "[351.0429931640625, 78.08400268554688, 184.42349853515626]\n",
      "not in the boundary range\n",
      "[351.9885009765625, 76.42650146484375, 185.99150390625]\n",
      "not in the boundary range\n",
      "[353.193994140625, 74.652001953125, 187.16099853515624]\n",
      "not in the boundary range\n",
      "[354.06650390625, 73.04299926757812, 188.83499755859376]\n",
      "not in the boundary range\n",
      "[354.9860107421875, 71.38400268554688, 190.431005859375]\n",
      "not in the boundary range\n",
      "[356.1485107421875, 69.79650268554687, 191.95899658203126]\n",
      "not in the boundary range\n",
      "[357.1919921875, 68.0114990234375, 193.36099853515626]\n",
      "not in the boundary range\n",
      "[358.3445068359375, 66.2614990234375, 194.72099609375]\n",
      "not in the boundary range\n",
      "[359.227001953125, 64.53800048828126, 196.2844970703125]\n",
      "not in the boundary range\n",
      "[364.5455078125, 56.021002197265624, 233.0675048828125]\n",
      "not in the boundary range\n",
      "[365.45048828125, 56.16599731445312, 235.37099609375]\n",
      "not in the boundary range\n",
      "[366.8239990234375, 56.1635009765625, 237.4135009765625]\n",
      "not in the boundary range\n",
      "[368.26298828125, 56.46799926757812, 239.28349609375]\n",
      "not in the boundary range\n",
      "[368.6044921875, 57.692498779296876, 241.3465087890625]\n",
      "not in the boundary range\n",
      "[368.7570068359375, 59.19099731445313, 243.3360107421875]\n",
      "not in the boundary range\n",
      "[368.956005859375, 60.71799926757812, 245.2844970703125]\n",
      "not in the boundary range\n",
      "[369.1199951171875, 62.391998291015625, 247.1284912109375]\n",
      "not in the boundary range\n",
      "[369.49599609375, 64.03350219726562, 248.9679931640625]\n",
      "not in the boundary range\n",
      "[370.1530029296875, 65.52000122070312, 250.84951171875]\n",
      "not in the boundary range\n",
      "[370.856494140625, 67.17249755859375, 252.5659912109375]\n",
      "not in the boundary range\n",
      "[371.1489990234375, 68.84349975585937, 254.3905029296875]\n",
      "not in the boundary range\n",
      "[371.7425048828125, 70.57750244140625, 256.075]\n",
      "not in the boundary range\n",
      "[372.5385009765625, 72.41849975585937, 257.531494140625]\n",
      "not in the boundary range\n",
      "[372.877001953125, 74.24299926757813, 259.1625]\n",
      "not in the boundary range\n",
      "[373.1534912109375, 75.85150146484375, 261.05]\n",
      "not in the boundary range\n",
      "[373.768505859375, 77.3489990234375, 262.9485107421875]\n",
      "not in the boundary range\n",
      "[373.94951171875, 78.92050170898438, 264.864990234375]\n",
      "not in the boundary range\n",
      "[373.822509765625, 80.39249877929687, 266.8800048828125]\n",
      "not in the boundary range\n",
      "[373.760498046875, 81.5625, 269.077490234375]\n",
      "not in the boundary range\n",
      "[373.39150390625, 82.58250122070312, 271.3219970703125]\n",
      "not in the boundary range\n",
      "[374.1925048828125, 83.47249755859374, 273.481005859375]\n",
      "not in the boundary range\n",
      "[374.0760009765625, 84.064501953125, 275.85849609375]\n",
      "not in the boundary range\n",
      "[372.9195068359375, 84.89849853515625, 277.889501953125]\n",
      "not in the boundary range\n",
      "[372.1429931640625, 85.31599731445313, 280.1945068359375]\n",
      "not in the boundary range\n",
      "[371.539501953125, 85.55, 282.56650390625]\n",
      "not in the boundary range\n",
      "[372.6159912109375, 85.5489990234375, 284.7949951171875]\n",
      "not in the boundary range\n",
      "[374.17548828125, 85.2864990234375, 286.6385009765625]\n",
      "not in the boundary range\n",
      "[375.06650390625, 84.87750244140625, 287.647509765625]\n"
     ]
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 432x288 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "import IONData\n",
    "iondata = IONData.IONData()\n",
    "def flatneuron(neurontree):\n",
    "    fig = plt.figure()\n",
    "    ax = fig.add_subplot(1, 2, 1)  \n",
    "    index=0\n",
    "    for edge in neurontree.edges:\n",
    "        # print(index)\n",
    "        index+=1\n",
    "        points=[]\n",
    "        for point in edge.data[0:-1:5]:\n",
    "            points.append([point.xyz[0]/20,point.xyz[1]/20,point.xyz[2]/20])\n",
    "        point=edge.data[-1]\n",
    "        points.append([point.xyz[0]/20,point.xyz[1]/20,point.xyz[2]/20])\n",
    "        out=BoundLaplace.ComputeStreamlines(grid,dv0,dv1,\n",
    "                                        dv2,copy.deepcopy(points))\n",
    "        newPoint = []\n",
    "        \n",
    "        ii = 0\n",
    "        for p in out:\n",
    "            depth = p[0]\n",
    "            if depth != 0:\n",
    "                newPoint.append([points[ii][0],depth,points[ii][2]])\n",
    "            ii += 1\n",
    "        ax.plot(np.array(newPoint)[:,0],np.array(newPoint)[:,1],ls='-',c='k',zorder=0)   \n",
    "\n",
    "\n",
    "    ax = fig.add_subplot(1, 2, 2)  \n",
    "    for edge in neurontree.edges:\n",
    "        points=[]\n",
    "        for point in edge.data:\n",
    "            points.append([point.xyz[0]/20,point.xyz[1]/20,point.xyz[2]/20])\n",
    "        ax.plot(np.array(points)[:,0],np.array(points)[:,1],ls='-',c='k',zorder=0)   \n",
    "    plt.show()\n",
    "\n",
    "neurontree = iondata.getNeuronTreeByID(\"000002\",\"1060693894_18452_5511-X26566-Y3403_reg.swc\")\n",
    "flatneuron(neurontree)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "exist  D:\\project\\python\\neuron-vis\\neuronVis/../resource/swc/000002/1060693894_18452_5511-X26566-Y3403_reg.swc\n",
      "not in the boundary range\n",
      "[350.6864990234375, 77.539501953125, 179.50699462890626]\n",
      "not in the boundary range\n",
      "[350.2510009765625, 79.65449829101563, 182.725]\n",
      "not in the boundary range\n",
      "[351.9885009765625, 76.42650146484375, 185.99150390625]\n",
      "not in the boundary range\n",
      "[354.06650390625, 73.04299926757812, 188.83499755859376]\n",
      "not in the boundary range\n",
      "[356.1485107421875, 69.79650268554687, 191.95899658203126]\n",
      "not in the boundary range\n",
      "[358.3445068359375, 66.2614990234375, 194.72099609375]\n",
      "not in the boundary range\n",
      "[365.45048828125, 56.16599731445312, 235.37099609375]\n",
      "not in the boundary range\n",
      "[368.26298828125, 56.46799926757812, 239.28349609375]\n",
      "not in the boundary range\n",
      "[368.7570068359375, 59.19099731445313, 243.3360107421875]\n",
      "not in the boundary range\n",
      "[369.1199951171875, 62.391998291015625, 247.1284912109375]\n",
      "not in the boundary range\n",
      "[370.1530029296875, 65.52000122070312, 250.84951171875]\n",
      "not in the boundary range\n",
      "[371.1489990234375, 68.84349975585937, 254.3905029296875]\n",
      "not in the boundary range\n",
      "[372.5385009765625, 72.41849975585937, 257.531494140625]\n",
      "not in the boundary range\n",
      "[373.1534912109375, 75.85150146484375, 261.05]\n",
      "not in the boundary range\n",
      "[373.94951171875, 78.92050170898438, 264.864990234375]\n",
      "not in the boundary range\n",
      "[373.760498046875, 81.5625, 269.077490234375]\n",
      "not in the boundary range\n",
      "[374.1925048828125, 83.47249755859374, 273.481005859375]\n",
      "not in the boundary range\n",
      "[372.9195068359375, 84.89849853515625, 277.889501953125]\n",
      "not in the boundary range\n",
      "[371.539501953125, 85.55, 282.56650390625]\n",
      "not in the boundary range\n",
      "[374.17548828125, 85.2864990234375, 286.6385009765625]\n",
      "not in the boundary range\n",
      "[375.06650390625, 84.87750244140625, 287.647509765625]\n"
     ]
    },
    {
     "data": {
      "image/png": "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smQJZrOZd999lxUrVnDp0iXat29PbGwsEydOpE2bNvzf//0fAwcOZPPmzUBio1iz2axb4FpvzHnz5gHkVwX+AvfdJwBLgb5J7/sCud+DKw2UUvz888+4ubnRpUsXI0sziXPnzmGxWChXrtwjj9WSfbLbjaK5GDNTlyhNUsuvz67Xk1QLJS3i4+Nl9uzZUrx4cQGkZ8+ecu7cuRyXo02bNuLv729VC+L3338XQGrUqCGA9OnTR8aPHy+AFCpUSJycnCQwMFBERGbMmCGAdO3aVTw9PaVs2bJSvHjxXKktoUEmaqEAzsAtwD3ZtsIkRp+EAKuAQg8bIy/M63///VcAee+993JblDzBihUrBJCNGzem6/gKFSpI69ats1WmypUry7PPPpupc9Oa24YFnsOYzWb69etHSEgI48aN47fffiMoKIi33377sTMlM0Lnzp05c+aMnlgAiWFVTk5O7N27l8mTJzN37lzef/99Fi1axJ07d6z6+N2+fRtI9Oc1bdqUc+fO0bBhQ6u0+/yAiESISGERCU227ZaItBCRABFpKSK3c1PG9NCyZUu6devG1KlTHxp5kReIj49nxowZDBs2jOvXs8c7tWnTJsxmM1WrVk3X8a1atWL9+vXZ1itTRDhx4kSWuk/AcKHkGi4uLnzwwQccP36czp0788EHHxAYGMgPP/yQIz0lO3TogFJKr5Ny584d6tSpo8d3x8bGsmzZMiZOnEhAQIDusz948CALFy7k4sWLQGLBq5o1axIfH0+FChWyXW6DtPn444+xs7Oja9euebox8vr163njjTf44osvqF69Or/++usjFxszyurVq6lTp066cxJatWpFdHQ0mzZtylI5NKKiooiNjdVbEWYVhgLPZXx9ffnll1/YsmULvr6+9O/fnzp16hASEpKt1y1WrBgNGzbUFbjZbObOnTu88sordOvWjWnTprFy5UreffddateuDYCrqyteXl706NGD9evXA4l+fc2nl9+s74KGn58fv/zyCwcOHODZZ5/Ns/VSgoKCgMRUdnd3d7p160a5cuX48MMPsyStPSwsjJ07d+rZwumhadOm2NvbZ1vJi+xKcjMUeB6hfv36bN26lXnz5nH27FmCg4NZtmxZtl6zU6dOHDhwgNOnT+u9AtevX8/kyZOJiYlBRDh+/LheSjY0NBSlFAMHDuTMmTNAouLX6k1o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",
      "text/plain": [
       "<Figure size 432x288 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "neurontree = iondata.getNeuronTreeByID(\"212258\",\"004.swc\")\n",
    "\n",
    "flatneuron(neurontree)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "import torch"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([[0.5994, 0.0944, 0.7526],\n",
      "        [0.1742, 0.1625, 0.9024],\n",
      "        [0.0055, 0.5797, 0.6996],\n",
      "        [0.7495, 0.4528, 0.6993],\n",
      "        [0.1947, 0.6876, 0.3516]], requires_grad=True)\n",
      "tensor([[2.5994, 2.0944, 2.7526],\n",
      "        [2.1742, 2.1625, 2.9024],\n",
      "        [2.0055, 2.5797, 2.6996],\n",
      "        [2.7495, 2.4528, 2.6993],\n",
      "        [2.1947, 2.6876, 2.3516]], grad_fn=<AddBackward0>)\n"
     ]
    }
   ],
   "source": [
    "x = torch.rand(5, 3, requires_grad=True)\n",
    "y=x+2\n",
    "print(x)\n",
    "print(y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "tensor([[20.2705, 13.1596, 22.7306],\n",
      "        [14.1811, 14.0286, 25.2719],\n",
      "        [12.0659, 19.9645, 21.8629],\n",
      "        [22.6788, 18.0485, 21.8594],\n",
      "        [14.4500, 21.6702, 16.5905]], grad_fn=<MulBackward0>) tensor(18.5889, grad_fn=<MeanBackward0>)\n"
     ]
    }
   ],
   "source": [
    "z=y*y*3\n",
    "out = z.mean()\n",
    "print(z,out)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "None\n"
     ]
    }
   ],
   "source": [
    "print(out.backward())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "5"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "5"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3.7.13 ('neuronVis')",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.3"
  },
  "toc": {
   "base_numbering": 1,
   "nav_menu": {},
   "number_sections": true,
   "sideBar": true,
   "skip_h1_title": false,
   "title_cell": "Table of Contents",
   "title_sidebar": "Contents",
   "toc_cell": false,
   "toc_position": {
    "height": "calc(100% - 180px)",
    "left": "10px",
    "top": "150px",
    "width": "373.333px"
   },
   "toc_section_display": true,
   "toc_window_display": true
  },
  "vscode": {
   "interpreter": {
    "hash": "ef2823f15a58023ddfb76714dc8212e7850ddfc9cef1afeb95a54274bed857b0"
   }
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
